[INFO] cloning repository https://github.com/abhinavm24/learn-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/abhinavm24/learn-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabhinavm24%2Flearn-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabhinavm24%2Flearn-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 12483c97379e663d7f498daf235dd938580866fa
[INFO] fixing abhinavm24/learn-rust against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabhinavm24%2Flearn-rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/abhinavm24/learn-rust
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/abhinavm24/learn-rust
[INFO] tweaked toml for git repo https://github.com/abhinavm24/learn-rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/abhinavm24/learn-rust on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/abhinavm24/learn-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b
[INFO] running `Command { std: "docker" "start" "888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]     Checking rust-book-examples v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `quit_msg`
[INFO] [stdout]    --> examples/ch06_01_defining_enums.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let quit_msg = QuitMessage;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quit_msg`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `write_msg`
[INFO] [stdout]    --> examples/ch06_01_defining_enums.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let write_msg = WriteMessage(String::from("Struct approach"));
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_write_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 |     V4(u8, u8, u8, u8),
[INFO] [stdout]    |     -- ^^  ^^  ^^  ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 13 -     V4(u8, u8, u8, u8),
[INFO] [stdout] 13 +     V4((), (), (), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     V6(String),
[INFO] [stdout]    |     -- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IpAddr` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 14 -     V6(String),
[INFO] [stdout] 14 +     V6(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveMessage` is never constructed
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | struct MoveMessage {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:72:21
[INFO] [stdout]    |
[INFO] [stdout] 72 | struct WriteMessage(String); // tuple struct
[INFO] [stdout]    |        ------------ ^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChangeColorMessage` is never constructed
[INFO] [stdout]   --> examples/ch06_01_defining_enums.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | struct ChangeColorMessage(i32, i32, i32); // tuple struct
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workers` is never read
[INFO] [stdout]   --> examples/ch20_02_multithreaded.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ThreadPool {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 52 |     workers: Vec<Worker>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `thread` are never read
[INFO] [stdout]   --> examples/ch20_02_multithreaded.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | struct Worker {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 58 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 59 |     thread: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `South`, `East`, and `West` are never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 140 |     enum Direction {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 141 |         North,
[INFO] [stdout] 142 |         South,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 143 |         East,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 144 |         West,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Direction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:163:16
[INFO] [stdout]     |
[INFO] [stdout] 163 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ----   ^       ^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Move`, and `Write` are never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 259 |     enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 260 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 261 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 262 |         Write(String),
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rgb` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |     enum Color {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] 284 |         Rgb(i32, i32, i32),
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Quit`, `Move`, and `Write` are never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 |     enum NestedMessage {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 290 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 291 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 292 |         Write(String),
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NestedMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `y` and `z` are never read
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 362 |     struct Point3D {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 363 |         x: i32,
[INFO] [stdout] 364 |         y: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout] 365 |         z: i32,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point3D` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Fahrenheit` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:452:9
[INFO] [stdout]     |
[INFO] [stdout] 450 |     enum Temperature {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 451 |         Celsius(i32),
[INFO] [stdout] 452 |         Fahrenheit(i32),
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Temperature` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Hsv` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:527:9
[INFO] [stdout]     |
[INFO] [stdout] 525 |     enum Color {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] 526 |         Rgb(i32, i32, i32),
[INFO] [stdout] 527 |         Hsv(i32, i32, i32),
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Color` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Move` is never constructed
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:533:9
[INFO] [stdout]     |
[INFO] [stdout] 531 |     enum NestedMessage {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] 532 |         ChangeColor(Color),
[INFO] [stdout] 533 |         Move { x: i32, y: i32 },
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NestedMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `street` is never read
[INFO] [stdout]    --> examples/ch18_03_pattern_syntax.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 570 |     struct Address {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 571 |         street: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Address` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Penny`, `Nickel`, and `Dime` are never constructed
[INFO] [stdout]   --> examples/ch18_01_pattern_locations.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | enum Coin {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] 44 |     Penny,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 45 |     Nickel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 46 |     Dime,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coin` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Alabama`, `California`, and `Texas` are never constructed
[INFO] [stdout]   --> examples/ch18_01_pattern_locations.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum UsState {
[INFO] [stdout]    |      ------- variants in this enum
[INFO] [stdout] 52 |     Alabama,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 53 |     Alaska,
[INFO] [stdout] 54 |     California,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 55 |     Texas,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Write` and `ChangeColor` are never constructed
[INFO] [stdout]    --> examples/ch18_01_pattern_locations.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 138 |         Hello { id: i32 },
[INFO] [stdout] 139 |         Write(String),
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 140 |         ChangeColor(i32, i32, i32),
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `street` is never read
[INFO] [stdout]    --> examples/ch18_01_pattern_locations.rs:468:9
[INFO] [stdout]     |
[INFO] [stdout] 467 |     struct Address {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] 468 |         street: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Address` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]    --> examples/ch18_01_pattern_locations.rs:505:9
[INFO] [stdout]     |
[INFO] [stdout] 504 |     enum Message {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] 505 |         Quit,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot explicitly dereference within an implicitly-borrowing pattern
[INFO] [stdout]    --> examples/ch08_03_hash_maps.rs:266:71
[INFO] [stdout]     |
[INFO] [stdout] 266 |     if let Some((winner, &max_score)) = scores.iter().max_by_key(|(_, &score)| score) {
[INFO] [stdout]     |                                                                       ^ reference pattern not allowed when implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/reference/patterns.html#binding-modes>
[INFO] [stdout] note: matching on a reference type with a non-reference pattern implicitly borrows the contents
[INFO] [stdout]    --> examples/ch08_03_hash_maps.rs:266:67
[INFO] [stdout]     |
[INFO] [stdout] 266 |     if let Some((winner, &max_score)) = scores.iter().max_by_key(|(_, &score)| score) {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^ this non-reference pattern matches on a reference type `&_`
[INFO] [stdout] help: match on the reference with a reference pattern to avoid implicitly borrowing
[INFO] [stdout]     |
[INFO] [stdout] 266 |     if let Some((winner, &max_score)) = scores.iter().max_by_key(|&(_, &score)| score) {
[INFO] [stdout]     |                                                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> examples/ch08_02_strings.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut s = String::new();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     struct Point<T> {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 101 |         x: T,
[INFO] [stdout]     |         ^
[INFO] [stdout] 102 |         y: T,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Point` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     struct PointMixed<T, U> {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 115 |         x: T,
[INFO] [stdout]     |         ^
[INFO] [stdout] 116 |         y: U,
[INFO] [stdout]     |         ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PointMixed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:191:17
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Cons(T, Box<List<T>>),
[INFO] [stdout]     |         ----    ^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 191 -         Cons(T, Box<List<T>>),
[INFO] [stdout] 191 +         Cons(T, ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value`, `left`, and `right` are never read
[INFO] [stdout]    --> examples/ch10_01_generic_data_types.rs:205:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |         Node {
[INFO] [stdout]     |         ---- fields in this variant
[INFO] [stdout] 205 |             value: T,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout] 206 |             left: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 207 |             right: Box<BinaryTree<T>>,
[INFO] [stdout]     |             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinaryTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-book-examples` (example "ch08_03_hash_maps") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `demonstrate_large_project` is never used
[INFO] [stdout]    --> examples/ch07_05_separating_modules.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn demonstrate_large_project() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demonstrate_privacy` is never used
[INFO] [stdout]    --> examples/ch07_05_separating_modules.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 |     pub fn demonstrate_privacy() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: extern blocks must be unsafe
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:357:1
[INFO] [stdout]     |
[INFO] [stdout] 357 | / extern "C" {
[INFO] [stdout] 358 | |     fn abs(input: i32) -> i32;
[INFO] [stdout] 359 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unsafe attribute used without unsafe
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:362:3
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[no_mangle]
[INFO] [stdout]     |   ^^^^^^^^^ usage of unsafe attribute
[INFO] [stdout]     |
[INFO] [stdout] help: wrap the attribute in `unsafe(...)`
[INFO] [stdout]     |
[INFO] [stdout] 362 | #[unsafe(no_mangle)]
[INFO] [stdout]     |   +++++++         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]   --> examples/ch15_06_reference_cycles.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     struct CyclicNode {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 50 |         value: i32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CyclicNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> examples/ch15_06_reference_cycles.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     struct Connection {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 225 |         id: u32,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Connection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `database_url` and `port` are never read
[INFO] [stdout]    --> examples/ch09_03_to_panic_or_not.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |     struct Config {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 242 |         database_url: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 243 |         port: u16,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ParseError` is never constructed
[INFO] [stdout]    --> examples/ch09_03_to_panic_or_not.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     enum ConfigError {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 248 |         FileNotFound,
[INFO] [stdout] 249 |         ParseError(String),
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConfigError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Guess` is never constructed
[INFO] [stdout]    --> examples/ch09_03_to_panic_or_not.rs:363:16
[INFO] [stdout]     |
[INFO] [stdout] 363 |     pub struct Guess {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `value` are never used
[INFO] [stdout]    --> examples/ch09_03_to_panic_or_not.rs:368:16
[INFO] [stdout]     |
[INFO] [stdout] 367 |     impl Guess {
[INFO] [stdout]     |     ---------- associated items in this implementation
[INFO] [stdout] 368 |         pub fn new(value: i32) -> Guess {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |         pub fn value(&self) -> i32 {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed_pointer`
[INFO] [stdout]    --> examples/ch15_03_drop_trait.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let boxed_pointer = Box::new(CustomSmartPointer::new("boxed data"));
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed_pointer`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc3`
[INFO] [stdout]    --> examples/ch15_03_drop_trait.rs:333:21
[INFO] [stdout]     |
[INFO] [stdout] 333 |                 let rc3 = rc2.clone();
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_rc3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `demonstrate_drop_and_panic` is never used
[INFO] [stdout]    --> examples/ch15_03_drop_trait.rs:345:4
[INFO] [stdout]     |
[INFO] [stdout] 345 | fn demonstrate_drop_and_panic() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> examples/ch15_01_smart_pointers.rs:437:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     struct MutableNode {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 437 |         value: i32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MutableNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_children` is never used
[INFO] [stdout]    --> examples/ch15_01_smart_pointers.rs:457:12
[INFO] [stdout]     |
[INFO] [stdout] 441 |     impl MutableNode {
[INFO] [stdout]     |     ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 457 |         fn get_children(&self) -> Vec<Rc<MutableNode>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `when_to_use_result_vs_panic` is never used
[INFO] [stdout]    --> examples/ch09_02_recoverable_errors.rs:269:4
[INFO] [stdout]     |
[INFO] [stdout] 269 | fn when_to_use_result_vs_panic() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated function or constant named `uninit_array` found for union `MaybeUninit<T>` in the current scope
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:424:56
[INFO] [stdout]     |
[INFO] [stdout] 424 |     let mut data: [MaybeUninit<i32>; 5] = MaybeUninit::uninit_array();
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ associated function or constant not found in `MaybeUninit<_>`
[INFO] [stdout]     |
[INFO] [stdout] note: if you're trying to build a new `MaybeUninit<_>` consider using one of the following associated functions:
[INFO] [stdout]       MaybeUninit::<T>::new
[INFO] [stdout]       MaybeUninit::<T>::uninit
[INFO] [stdout]       MaybeUninit::<T>::zeroed
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/mem/maybe_uninit.rs:406:4
[INFO] [stdout] help: there is an associated function `uninit` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 424 -     let mut data: [MaybeUninit<i32>; 5] = MaybeUninit::uninit_array();
[INFO] [stdout] 424 +     let mut data: [MaybeUninit<i32>; 5] = MaybeUninit::uninit();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0658]: use of unstable library feature `maybe_uninit_array_assume_init`
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:433:9
[INFO] [stdout]     |
[INFO] [stdout] 433 |         MaybeUninit::array_assume_init(data)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: see issue #96097 <https://github.com/rust-lang/rust/issues/96097> for more information
[INFO] [stdout]     = help: add `#![feature(maybe_uninit_array_assume_init)]` to the crate attributes to enable
[INFO] [stdout]     = note: this compiler was built on 2026-06-16; consider upgrading it if it is out of date
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout] 100 |     *ptr = 999; // Direct memory manipulation
[INFO] [stdout]     |     ^^^^ dereference of raw pointer
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:94:1
[INFO] [stdout]     |
[INFO] [stdout]  94 | unsafe fn dangerous() {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:384:21
[INFO] [stdout]     |
[INFO] [stdout] 384 |         let c_str = CStr::from_ptr(s);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:383:5
[INFO] [stdout]     |
[INFO] [stdout] 383 |     unsafe fn simulate_c_strlen(s: *const c_char) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:485:9
[INFO] [stdout]     |
[INFO] [stdout] 485 |         slice::from_raw_parts(ptr, len)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> examples/ch19_01_unsafe_rust.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 | /     pub unsafe fn slice_from_raw_parts_documented<'a, T>(
[INFO] [stdout] 482 | |         ptr: *const T, 
[INFO] [stdout] 483 | |         len: usize
[INFO] [stdout] 484 | |     ) -> &'a [T] {
[INFO] [stdout]     | |________________^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0599, E0658.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-book-examples` (example "ch19_01_unsafe_rust") due to 4 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b", kill_on_drop: false }`
[INFO] [stdout] 888d5d8ffd66a5874da6bc6fda81e1a5eb1c060ead876f278ec2605abca6b45b
